package com.lsl.proxy_pattern.staticproxy;


import com.lsl.proxy_pattern.staticproxy.RealSubject.Pursuit;
import com.lsl.proxy_pattern.staticproxy.Subject.IGiveGift;
import com.lsl.proxy_pattern.staticproxy.handler.MyHandler;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

public class Test2 {
    public static void main(String[] args) {
        /**
         *  创建代理对象 使用Proxy
         */
        //1.创建目标对象
        IGiveGift iGiveGift = new Pursuit();
        //2.创建InvocationHandler对象
        InvocationHandler invocationHandler = new MyHandler(iGiveGift);
        //3.创建代理对象
        IGiveGift proxy = (IGiveGift) Proxy.newProxyInstance(iGiveGift.getClass().getClassLoader(), iGiveGift.getClass().getInterfaces(), invocationHandler);
        //4.通过代理执行方法
        proxy.giveDolls();
    }
}
